/**
 * 提示方法
 * @param {String} title 提示文字
 * @param {String}  icon icon图片
 * @param {Number}  duration 提示时间
 */
export function toast(title, icon = 'none', duration = 1500) {
	if (title) {
		uni.showToast({
			title,
			icon,
			duration
		})
	}
}

/**
 * 设置缓存
 * @param {String} key 键名
 * @param {String} data 值
 */
export function setStorageSync(key, data) {
	uni.setStorageSync(key, data)
}

/**
 * 获取缓存
 * @param {String} key 键名
 */
export function getStorageSync(key) {
	return uni.getStorageSync(key)
}

/**
 * 删除缓存
 * @param {String} key 键名
 */
export function removeStorageSync(key) {
	return uni.removeStorageSync(key)
}

/**
 * 清空缓存
 * @param {String} key 键名
 */
export function clearStorageSync() {
	return uni.clearStorageSync()
}
/**
 * 退出登录
*/
export function signOut() {
	removeStorageSync('token')
	setTimeout(()=>{
		useRouter('/pages/login/index',{}, 'reLaunch')
	},300)
}
/**
 * 页面跳转
 * @param {'navigateTo' | 'redirectTo' | 'reLaunch' | 'switchTab' | 'navigateBack' | number } url  转跳路径
 * @param {String} params 跳转时携带的参数
 * @param {String} type 转跳方式
 **/
export function useRouter(url, params = {}, type = 'navigateTo') {
	try {
		if (Object.keys(params).length) url = `${url}?data=${JSON.stringify(params)}`
		if (type === 'navigateBack') {
			uni[type]({
				delta: url
			})
		} else {
			uni[type]({
				url
			})
		}
	} catch (error) {
		console.error(error)
	}
}

/**
 * 预览图片
 * @param {Array} urls 图片链接
 */
export function previewImage(urls, itemList = ['发送给朋友', '保存图片', '收藏']) {
	uni.previewImage({
		urls,
		longPressActions: {
			itemList,
			fail: function(error) {
				console.error(error, '===previewImage')
			}
		}
	})
}

/**
 * 保存图片到本地
 * @param {String} filePath 图片临时路径
 **/
export function saveImage(filePath) {
	if (!filePath) return false
	uni.saveImageToPhotosAlbum({
		filePath,
		success: (res) => {
			toast('图片保存成功', 'success')
		},
		fail: (err) => {
			if (err.errMsg === 'saveImageToPhotosAlbum:fail:auth denied' || err.errMsg ===
				'saveImageToPhotosAlbum:fail auth deny') {
				uni.showModal({
					title: '提示',
					content: '需要您授权保存相册',
					showCancel: false,
					success: (modalSuccess) => {
						uni.openSetting({
							success(settingdata) {
								if (settingdata.authSetting['scope.writePhotosAlbum']) {
									uni.showModal({
										title: '提示',
										content: '获取权限成功,再次点击图片即可保存',
										showCancel: false
									})
								} else {
									uni.showModal({
										title: '提示',
										content: '获取权限失败，将无法保存到相册哦~',
										showCancel: false
									})
								}
							},
							fail(failData) {
								console.log('failData', failData)
							}
						})
					}
				})
			}
		}
	})
}

/**
 * 深拷贝
 * @param {Object} data
 **/
export const clone = (data) => JSON.parse(JSON.stringify(data))